/**
 *新增成交单修改图片功能
 *根据id修改图片数据
 */
package com.xo.xodemo.controller.process;

import com.xo.xodemo.mapper.db1.*;
import com.xo.xodemo.model.*;
import org.openxmlformats.schemas.wordprocessingml.x2006.main.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.math.BigInteger;
import java.util.*;
import org.apache.poi.xwpf.usermodel.*;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.FileInputStream;
import java.util.Map;


@RestController
@RequestMapping("/process")
public class ImageController {

    @Autowired
    private ProofBargainMapper proofBargainMapper;

    @Autowired
    private ProcessListMapper processListMapper;

    /**
     * 修改成交单图片修改
     * @param requestData
     * @return
     */
    @PostMapping("/DeletedImagePath")
    public String handleDeletedImagePath(@RequestBody Map<String, String> requestData) {
        String ImagePath = requestData.get("ImagePath");
        String id = requestData.get("id");

        ProofBargain pb = proofBargainMapper.selectById(id);
        String[] fileAddresses = pb.getFileAddress().split("\\|");
        List<String> uniqueFileAddresses = new ArrayList<>(Arrays.asList(fileAddresses));
        uniqueFileAddresses.remove(ImagePath);
        String result = String.join("|", uniqueFileAddresses);
//        System.out.println("拼接"+ result);

        proofBargainMapper.updateByImagePathAndId(id, result);

        return "200";
    }


//    // 新增Word文档
//    @PostMapping("/downloadToWord")
//    public String convertToWord(@RequestBody Map<String, String> requestData){
//        String processType = requestData.get("processType");
//        String id = requestData.get("id");
//        System.out.println("processType = " + processType + "id = " + id);
//
//        ProcessEntity pe=processListMapper.selectById(id);
//        ProofBargain pb = proofBargainMapper.selectById(id);
//        System.out.println("pb = " + pb + "pe" + pe);
//
//        //获取图片及数据
//        String[] fileAddresses = pb.getFileAddress().split("\\|");
//        List<String> uniqueFileAddresses = new ArrayList<>(Arrays.asList(fileAddresses));
//        for (String address : uniqueFileAddresses) {
//            System.out.println(address);
//        }
//
//        // 调取模版 插入数据
//        // 生成链接
//
//        return "tt" ;
//    }
//
//    /**
//     * 成交单模版
//     * @param args
//     */
//    public static void main(String[] args) {
//        // 创建一个新的空白文档
//        XWPFDocument document = new XWPFDocument();
//
//        // 添加一个表格
//        int numRows = 11;
//        int numCols = 6;
//        XWPFTable customTable = document.createTable(numRows, numCols);
//
//        // 设置表格的宽度
//        int tableWidth = 9600;  // 单位为twip（1/20磅）
//        customTable.setWidth(tableWidth);
//
//        // 设置每列的宽度
//        int[] columnWidths = {1200, 2000, 1200, 2000, 1200, 2000};  // 单位为twip
//        for (int col = 0; col < numCols; col++) {
//            CTTblWidth cellWidth = customTable.getRow(0).getCell(col).getCTTc().addNewTcPr().addNewTcW();
//            cellWidth.setW(BigInteger.valueOf(columnWidths[col]));
//        }
//
//        // 设置每行的高度
//        int rowHeight = 800;  // 单位为twip
//        for (int row = 0; row < numRows; row++) {
//            if (row == 8) {
//                customTable.getRow(row).setHeight(5600);
//            } else {
//                customTable.getRow(row).setHeight(rowHeight);
//            }
//        }
//
//
//        // 设置表格居中
//        CTTbl table = customTable.getCTTbl();
//        CTTblPr tblPr = table.getTblPr() != null ? table.getTblPr() : table.addNewTblPr();
//        CTJc jc = tblPr.isSetJc() ? tblPr.getJc() : tblPr.addNewJc();
//        jc.setVal(STJc.CENTER);
//
//        // 合并第3行的第4、5、6列
//        customTable.getRow(2).getCell(3).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);  // 合并起始单元格
//        customTable.getRow(2).getCell(4).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        customTable.getRow(2).getCell(5).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        // 合并第4行的第4、5、6列
//        customTable.getRow(3).getCell(3).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);  // 合并起始单元格
//        customTable.getRow(3).getCell(4).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        customTable.getRow(3).getCell(5).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        // 合并第5行的第4、5、6列
//        customTable.getRow(4).getCell(3).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);  // 合并起始单元格
//        customTable.getRow(4).getCell(4).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        customTable.getRow(4).getCell(5).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        // 合并第6行的第4、5、6列
//        customTable.getRow(5).getCell(3).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);  // 合并起始单元格
//        customTable.getRow(5).getCell(4).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        customTable.getRow(5).getCell(5).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        // 合并第7行的第2、3、4、5、6列
//        customTable.getRow(6).getCell(1).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);  // 合并续接单元格
//        customTable.getRow(6).getCell(2).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        customTable.getRow(6).getCell(3).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并起始单元格
//        customTable.getRow(6).getCell(4).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        customTable.getRow(6).getCell(5).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        // 合并第8行的第4、5、6列
//        customTable.getRow(7).getCell(1).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);  // 合并续接单元格
//        customTable.getRow(7).getCell(2).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        customTable.getRow(7).getCell(3).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并起始单元格
//        customTable.getRow(7).getCell(4).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        customTable.getRow(7).getCell(5).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        // 合并第9行的第4、5、6列
//        customTable.getRow(8).getCell(1).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);  // 合并续接单元格
//        customTable.getRow(8).getCell(2).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        customTable.getRow(8).getCell(3).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并起始单元格
//        customTable.getRow(8).getCell(4).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        customTable.getRow(8).getCell(5).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        // 合并第10行的第4、5、6列
//        customTable.getRow(9).getCell(1).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);  // 合并续接单元格
//        customTable.getRow(9).getCell(2).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        customTable.getRow(9).getCell(3).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并起始单元格
//        customTable.getRow(9).getCell(4).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        customTable.getRow(9).getCell(5).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        // 合并第11行的第4、5、6列
//        customTable.getRow(10).getCell(0).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.RESTART);  // 合并续接单元格
//        customTable.getRow(10).getCell(1).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        customTable.getRow(10).getCell(2).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        customTable.getRow(10).getCell(3).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并起始单元格
//        customTable.getRow(10).getCell(4).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//        customTable.getRow(10).getCell(5).getCTTc().addNewTcPr().addNewHMerge().setVal(STMerge.CONTINUE);  // 合并续接单元格
//
//        // 设置表格内容
//        for (int row = 0; row < numRows; row++) {
//            for (int col = 0; col < numCols; col++) {
//                String cellText;
//                if (row == 0 && col == 0) {
//                    cellText = "用户姓名";
//                }else if (row == 0 && col == 1) {
//                    cellText = "";
//                }else if (row == 0 && col == 2) {
//                    cellText = "性别";
//                }else if (row == 0 && col == 3) {
//                    cellText = "";
//                }else if (row == 0 && col == 4) {
//                    cellText = "资金量(万)";
//                }else if (row == 0 && col == 5) {
//                    cellText = "";
//                }else if (row == 1 && col == 0) {
//                    cellText = "电话";
//                }else if (row == 1 && col == 1) {
//                    cellText = "";
//                }else if (row == 1 && col == 2) {
//                    cellText = "QQ";
//                }else if (row == 1 && col == 3) {
//                    cellText = "";
//                }else if (row == 1 && col == 4) {
//                    cellText = "向日葵";
//                }else if (row == 1 && col == 5) {
//                    cellText = "";
//                }else if (row == 8 && col == 1) {
//                    cellText = "sss";
//                }else {
//                    cellText = "行" + (row + 1) + " 列" + (col + 1);
//                }
//                customTable.getRow(row).getCell(col).setText(cellText);
//            }
//        }
//
//        try {
//            // 将文档保存到文件
//            FileOutputStream out = new FileOutputStream("irregular_table_template.docx");
//            document.write(out);
//            out.close();
//            System.out.println("模板创建成功！");
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//    }
//
//
//
//    /**
//     * Word文档模版插入
//     * @param data
//     */
//    public void fillInData(Map<String, String> data) {
//        try {
//            FileInputStream fis = new FileInputStream("path_to_your_template.docx");
//            XWPFDocument doc = new XWPFDocument(fis);
//
//            // 替换文档中的变量
//            for (XWPFParagraph p : doc.getParagraphs()) {
//                List<XWPFRun> runs = p.getRuns();
//                if (runs != null) {
//                    for (XWPFRun r : runs) {
//                        String text = r.getText(0);
//                        if (text != null) {
//                            for (Map.Entry<String, String> entry : data.entrySet()) {
//                                text = text.replace("${" + entry.getKey() + "}", entry.getValue());
//                            }
//                            r.setText(text, 0);
//                        }
//                    }
//                }
//            }
//
//            FileOutputStream fos = new FileOutputStream("output_path.docx");
//            doc.write(fos);
//            fis.close();
//            fos.close();
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }



}